FENCE指令分析 |
您所在的位置:网站首页 › risc v汇编指示符 › FENCE指令分析 |
一、 玄铁C910中fence类型指令
在开源玄铁C910中,fence指令通过ct_idu_id_decd_special模块进行译码,分为三类。 1、 Fence.i Instruction 同步指令 Sync:保证前序指令早退休,后续指令晚退休 sync.s:前早后晚,将该请求广播给其他核 sync.i:前早后晚 且该指令退休时清空流水线 sync.is:前早后晚 且该指令退休时清空流水线并广播给其他核 dcache操作指令 dcache.call:clear 所有L1 dcache 表项,将所有dirty 表项写回到下一级存储,仅操作当前核。 dcache.iall: 无效所有L1 dcache 表项,仅操作当前核。 dcache.ciall: 将所有L1 dcache dirty 表项写回到下一级存储后,无效所有表项。 2、 Cp0 Instruction Sret:超级用户模式异常返回指令, next pc← sepc sstatus.sie ←sstatus.spie sstatus.spie ←1 Mret:机器模式异常返回指令, next pc← mepc mstatus.mie ←mstatus.mpie mstatus.mpie ←1 Wfi:进入低功耗模式指令 处理器进入低功耗模式,此时CPU 时钟关闭,大部分外设时钟也关闭 控制寄存器操作指令: Csrrw:控制寄存器立即数读写传送指令 Csrrs:控制寄存器立即数置位传送指令 Csrrc:控制寄存器清零传送指令 Csrrwi:控制寄存器立即数读写传送指令 Csrrci:控制寄存器立即数清零传送指令 Csrrsi:控制寄存器立即数置位传送指令 3、 Sfence Instruction fence.i:清空icache, 保证该指令前序所有数据访存结果能够被指令后的取指操作访问到。 sfence.vma:用于虚拟内存的无效和同步操作 二、 fence状态机控制1、id级inst0是fence类型指令后进入fence状态机,fence类型指令要等待后序流水线清空, assign fence_pipeline_empty = ctrl_fence_ir_pipe_empty && ctrl_fence_is_pipe_empty && rtu_idu_rob_empty && !iu_idu_div_busy && rtu_idu_pst_empty; 2、fence状态机较为简单, (1) 初始为IDLE状态,inst0为fence时进入WAIT_ISSUE (2) 后序流水线清空后进入ISSUE状态,ISSUE状态下fence指令进行译码,然后进入WAIT_CMPLT状态等待fence指令退休。 (3) Fence指令退休后,进入POP_INST状态,不再阻塞流水线,下一周期进入IDLE。 三、 Fence指令译码1、fence指令类型为Sfence类型时,会产生三个vld信号 fence_ctrl_inst0_vld、fence_ctrl_inst1vld、fence_ctrl_inst2_vld,当fence指令进入ISSUE状态时,inst0,1,2都会VLD。(inst3不会vld) 2、fence指令的译码通路也是并行+选择器的结构,通过mux选择对应的data 在id_dp中,inst0如果为fence指令可以生成三条uop, fence_inst0_data根据fence type选择 case(dp_fence_id_fence_type[2:0]) 3'b001 : fence_inst0_data[IR_WIDTH-1:0] = fence_inst0_sync_data[IR_WIDTH-1:0]; 3'b010 : fence_inst0_data[IR_WIDTH-1:0] = fence_inst0_cp0_data[IR_WIDTH-1:0]; 3'b100 : fence_inst0_data[IR_WIDTH-1:0] = fence_inst0_fence_data[IR_WIDTH-1:0]; fence_inst0_data 3、对于sync类型的指令,fence_inst0和fence_inst2为LSU类型,Inst2是sync.is指令 对于cp0类型指令,inst0为special类型 对于fence类型指令,inst0为LSU类型,inst1为LSU/LSUP5类型。 也就是说,对于sfence类型的指令,会生成三条uop,uop0为LSU类型,instl1为LSU/LSUP5类型,uop3为LSU类型(相当于sync.is) 本文章仅供学习交流使用,如有引用请注明出处。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |